A typical search engine such as the MSN SEARCH engine, a product/service of MICROSOFT Corporation of Redmond, Wash., receives a query from a user, performs a search in real- or near-real-time based on such query, and returns search results. In some search engines, the search results may be obtained from one or more sources. That is, based on the query to be searched, the search engine contacts one or more partners with the query so that each contacted partner can execute the query or a variation thereof in a partner database or the like and then return preliminary search results to the search engine. Based on all the preliminary results received from all contacted partners,
and perhaps based on preliminary results from executing the query or a variation thereof in a database or the like of the search engine, the search engine formats all the preliminary results into final search results and displays same to the user that ordered the search based on the query.
The ability of a search engine to work with partners is considered to be valuable in that the search engine can acquire data from such partners that the search engine would not itself otherwise have access to, and in that the search engine need not itself maintain such data. Significantly, adding a new partner to be available to the search engine or modifying same should be relatively easy and fast so that data can be made available from the new or modified partner in a prompt manner and with minimal operational work.
Each partner accessible by the search engine is typically represented thereto by way of a proxy. As should be appreciated, the search engine forwards a query or a variation thereof to a partner by calling the proxy thereof with the query. The proxy then appropriately contacts the partner with the query, receives the preliminary search results in response, and returns same to the search engine. Of course, the proxy may also perform pre- and/or post-operation functions such as formatting the query for the partner, formatting the preliminary results for the search engine, and the like.
In the prior art, the proxy for each partner was written specifically for such partner. Accordingly, it could require a significant amount of time to write, debug, and otherwise approve such a specific proxy, on the order of weeks. Such significant amount of time is based on the relatively large amount of coding, testing and operational time required. Plainly, such a time frame runs counter to the objective of adding a new partner or modifying same in a relatively easy and fast manner with minimal operational work.
Thus, a need exists for a proxy that allows adding a new partner or modifying same in such relatively easy and fast manner with minimal operational work. In particular, a need exists for a proxy that allows adding a new partner or modifying same with relatively little effort and time, and also with relatively little modification to the search engine itself.